package com.gt.web.srv.utils;

/**
 * <p>
 * FileUtil
 * </p>
 *
 * @author: WeiHuan
 * @version:1.0
 * @date: 2024/6/2 17:33
 * 注意：本内容仅限于公司内部传阅，禁止外泄以及用于其他的商业目的
 */

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

public class FileUtils {
	/**
	 * 获取文件后缀
	 * @param fileName
	 * @return
	 */
	public static String getSuffix(String fileName){
		return fileName.substring(fileName.lastIndexOf("."));
	}

	/**
	 * 生成新的文件名
	 * @param fileOriginName 源文件名
	 * @return
	 */
	public static String getFileName(String fileOriginName){
		return getUUID() + getSuffix(fileOriginName);
	}

	public static String getUUID(){
		return UUID.randomUUID().toString().replace("-", "");
	}

	/**
	 *
	 * @param file 文件
	 * @param path 文件存放路径
	 * @param fileName 源文件名
	 * @return
	 */
	public static String upload(MultipartFile file, String path, String fileName){
		String newFileName = getFileName(fileName);
		// 生成新的文件名
		String realPath = path + newFileName;

		//使用原文件名
//        String realPath = path + "/" + fileName;

		File dest = new File(realPath);

		//判断文件父目录是否存在
		if(!dest.getParentFile().exists()){
			dest.getParentFile().mkdirs();
		}

		try {
			//保存文件
			file.transferTo(dest);
			return newFileName;
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}

	}
}